package com.cmwa.solution.sys.userInfo.service;

import java.util.List;

import com.cmwa.solution.base.entity.Page;
import com.cmwa.solution.base.entity.SearchParam;
import com.cmwa.solution.sys.userInfo.entity.UserInfoVo;

public interface UserInfoService {
	/**
	 * 查询用户信息
	 * 
	 * @param userInfoVo
	 * @return
	 */
	List<UserInfoVo> searchUserInfoList(UserInfoVo userInfoVo);

	/**
	 * @author ex-lix 查询单张KM用户表信息
	 * @param userInfoVo
	 * @return
	 */
	List<UserInfoVo> searchUserInfo(UserInfoVo userInfoVo);

	/**
	 * 根据用户ID，查询用户信息
	 * 
	 * @param empId
	 * @return
	 */
	UserInfoVo getUserInfoById(String empId);

	/**
	 * 获取部门信息
	 * 
	 * @param userInfoVo
	 * @return
	 */
	List<UserInfoVo> searchDepartmentList(UserInfoVo userInfoVo);

	/**
	 * 根据用户ID查询组织ID
	 * 
	 * @param empId
	 * @return
	 */
	String queryOrgIdByEmpId(String empId);

	/**
	 * 查询全部 部门
	 * 
	 * @param userInfoVo
	 * @return
	 */
	List<UserInfoVo> queryAllDepartmentList();

	/**
	 * 查询某岗位下的用户列表
	 * 
	 * @param orgIdx
	 * @param stationId
	 * @return
	 */
	List<UserInfoVo> queryEmpListByStationId(String orgId, String stationId);

	/**
	 * 根据部门ID获取部门领导
	 * 
	 * @param orgId
	 * @return
	 */
	List<UserInfoVo> searchUserLeaderByOrgId(String empId);

	/**
	 * 查询全部部门(包含删除的，未删除的)
	 * 
	 * @param orgName
	 * @return
	 */
	List<UserInfoVo> queryAllMatchDepartmentList(String orgName);

	/**
	 * 员工分页列表
	 * 
	 * @author ex-hejm
	 * @date 2019年2月19日上午10:46:47
	 * @param sp
	 * @return
	 */
	Page<UserInfoVo> userListPage(SearchParam sp);

	/**
	 * 新增外部人员
	 * 
	 * @author ex-hejm
	 * @date 2019年2月19日下午6:31:39
	 * @param user
	 */
	void insertOutUser(UserInfoVo user);

	/**
	 * 根据账号查询
	 * 
	 * @author ex-hejm
	 * @date 2019年2月19日下午7:03:45
	 * @param login
	 * @return
	 */
	UserInfoVo getUserInfoLogin(String login);

	/**
	 * 重复账号
	 * @author ex-hejm
	 * @date 2019年2月20日下午3:01:33
	 * @param login
	 * @return
	 */
	boolean checkRepeatLogin(String login);

	/**
	 * 修改密码
	 * @author ex-hejm
	 * @date 2019年2月20日下午3:01:42
	 * @param empId
	 * @param password
	 * @param password2 
	 */
	void modifyPassword(String empId, String login, String password);

	/**
	 * 更改用户状态
	 * @author ex-hejm
	 * @date 2019年2月20日下午6:01:24
	 * @param empId
	 * @param stat
	 */
	void changeEmpStat(String empId, String stat);

}
